2.2 common front-end(CFE)

Dart 代码是如何转化为 Dart Kernal 的呢?这需要用到 common front-end(CFE)

CFE 使用 Dart 代码编写,该包提供了一个低级API,用于希望实现 Dart 语言的编译器后端。

它旨在最终被 dev_compiler、dart2js 和 Dart VM 使用。此外,它还将与 analyzer 包共享实现细节——这将通过让 analyzer 包导入(并重新导出)该包的部分私有实现来实现。

整个转化流程如下:

Pasted image 20240725161035.png

其中:CFE 是一个 Dart 包,解析 Dart 源代码,并将其转化为 Kernel AST。如果需要持久化,则以 dill 文件方式保存。Kernel AST 也可传入 DartVM 中进行执行,DartVM 由 C++ 实现。


本文作者:Maeiee

本文链接:2.2 common front-end(CFE)

版权声明:如无特别声明,本文即为原创文章,版权归 Maeiee 所有,未经允许不得转载!


喜欢我文章的朋友请随缘打赏,鼓励我创作更多更好的作品!